package com.weixing.mall.provider.model.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.weixing.mall.base.constant.DatePattern;
import com.weixing.mall.core.enums.OrderAppTagEnum;
import com.weixing.mall.core.enums.OrderSysTagEnum;
import com.weixing.mall.base.enums.WhetherEnum;
import com.weixing.mall.provider.api.model.enums.OrderTypeEnum;
import com.weixing.mall.provider.api.model.enums.SettleStateEnum;
import com.weixing.mall.provider.model.enums.*;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 客服审核订单列表vo
 *
 * @author  wx
 * @since  v1.0
 */
@Data
public class KefuAuditOrderVo {

    @ExcelProperty("序号")
    private String xu;
    /**
     * 订单id
     */
    private Long id;
    /**
     * 订单编号
     */
    private String orderSn;
    /**
     * 订单创建时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date createdTime;
    /**
     * 订单最后操作时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date updateTime;
    /**
     * 订单状态
     */
    private OrderStateEnum orderStatus;
    /**
     * 订单来源
     */
    private OrderFromEnum orderFrom;

    /**
     * 代理商
     */
    private String agentName;
    /**
     * 经销商
     */
    private String distributorName;
    /**
     * 客服
     */
    private String customerName;

    /**
     * 联系人
     */
    private String contactUser;
    /**
     * 联系人手机号
     */
    private String contactPhone;
    /**
     * 商品id
     */
    private Long goodsId;
    /**
     * 货品码
     */
    private String productSn;
    /**
     * sku
     */
    private String productSkuDesp;
    /**
     * 商品图片
     */
    private String productImg;
    /**
     * 商品名称
     */
    private String goodsName;
    /**
     * 货号
     */
    private String goodsSn;
    /**
     * 款号
     */
    private String styleNo;
    /**
     * 是否是代理认领订单
     */
    private WhetherEnum isCliam;
    /**
     * 是否已结算
     */
    private OrderIsSettleEnum isSettle;

    private SettleStateEnum settleState;

    /**
     * 是否已支付
     */
    private WhetherEnum isPay;

    /**
     * 订单类型
     */
    private OrderTypeEnum orderType;

    /**
     * 是否是代理认领的订单
     */
    private OrderIsClaimEnum isClaim;

    /**
     * 审核状态
     */
    private OrderAuditStateEnum auditStatus;

    /**
     * 所属客服id
     */
    private Long customerId;
    /**
     * 订单所属活动名称
     */
    private String actName;

    /**
     * 发货前审核提交时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date auditTime;

    /**
     * 最后操作时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date operationTime;
    /**
     * 需审核部门
     */
    private AuditDeptEnum auditDept;
    /**
     * 需审核人
     */
    private String auditor;

    /**
     * 需审核人id
     */
    private Long auditorId;
    /**
     * 待审核人
     */
    private String unAuditor;

    /**
     * 已审核人
     */
    private String auditedName;

    /**
     * 物流单号
     */
    private String expressSn;

    /**
     * 物流名称
     */
    private String expressName;

    /**
     * 市场价
     */
    private BigDecimal marketPrice;
    /**
     * 订单金额
     */
    private BigDecimal orderPrice;
    /**
     * 支付流水号
     */
    private String outTradeNo;
    /**
     * 代理商时间轴
     */
    @JsonIgnore
    private String agentCliamLine;
    /**
     * 需上交代理商名称
     */
    private String payAgentName;
    /**
     * 需收款
     */
    private BigDecimal payPrice = BigDecimal.ZERO;

    /**
     * 需上交款
     */
    private BigDecimal payUpPrice = BigDecimal.ZERO;

    /**
     * 发货员名称
     */
    private String shipperName;

    /**
     * 发货时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date shipTime;

    /**
     * 发货员取消时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date canceledTime;

    /**
     * 发货员取消时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN)
    private String calcelTime;

    /**
     * 取消审核状态
     */
    private NoSuppllyAuditEnum nosuppllyAudit;

    /**
     * 下单人
     */
    private String buyer;


    /**
     * 是否可删除
     */
    private Integer canDel = 0;

    /**
     * 系统标签
     */
    private OrderSysTagEnum sysTag;

    /**
     * 系统标签
     */
    private String orderSysTag;


    /**
     * 是否已绑定代理
     */
    private WhetherEnum isBind;

    /**
     * 是否线上订单
     */
    private WhetherEnum isOnline ;

    /**
     * 代理已审核列表
     */
    @JsonIgnore
    private String orderAuditorList;

    /**
     * 代理商标签
     */
    private OrderAppTagEnum appTag;


    /**
     * 省
     */
    private String province;
    /**
     * 市
     */
    private String city;
    /**
     * 区
     */
    private String region;
    /**
     * 详细地址
     */
    private String addrDetail;
    /**
     * 具体详细地址
     */
    private String addrDetails;
    /**
     * 是否换货    1  是   0 不是
     */
    private Integer afterSaleTag;


    /**
     * 支付渠道
     */
    private Integer payChannel;

    /**
     * 代理商id
     */
    private Long agentId;

    @ExcelProperty("身高")
    private String height;
    /*序号二期新增体重属性*/
    @ExcelProperty("体重")
    private String weight;

    /*序号二期新增仓库编码属性*/
    @ExcelProperty("仓库编码")
    private String depotSn;

    /**
     * 颜色
     */
    private String color;

    /**
     * 尺码
     */
    private String size;

    private String stockSn;

    private Long productId;

    private String customerRemark;
}
